/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modeles.beans;

import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import modeles.Produit;
import modeles.servicesClient.ServicesProduits;
import utilitaires.ftp.FTPTransfer;

/**
 *
 * @author Fred
 */
@ManagedBean(name = "listeProduits")
@ViewScoped
public class ListeProduitsBean implements Serializable {

    private ServicesProduits services;
    private List<Produit> produits;
    private List<Produit> porduitsTries;

    public ListeProduitsBean() {
        this.services = new ServicesProduits();
    }

    public List<Produit> getProduits() {
        if (produits == null) {
            produits = services.getProduits();
        }
        return produits;
    }

    public List<Produit> getPorduitsTries() {
        return porduitsTries;
    }

    public void setPorduitsTries(List<Produit> porduitsTries) {
        this.porduitsTries = porduitsTries;
    }

    public void supprimerProduit(int id) {
        produits = null;
        Produit p = services.trouverProduit(Integer.toString(id));
        Integer i = services.supprimerProduit(Integer.toString(id));
        if (i == null) {
            supprimerImage(p);
        } else if (i == 512) {
            ajouterMessage("Ce produit ne peut être supprimé pour des raisons d'intégrité de la base de données", FacesMessage.SEVERITY_ERROR);
        }
    }

    private void supprimerImage(Produit p) {
        if (p.getUrlPhoto() != null || !p.getUrlPhoto().isEmpty()) {
            String fileName = p.getUrlPhoto().substring(p.getUrlPhoto().lastIndexOf('/') + 1);
            String hostFileFullName = "public_html/ShopEasy/img/" + fileName;
            try {
                FTPTransfer.connect();
                FTPTransfer.removeFile(hostFileFullName);
            } catch (Exception ex) {
            } finally {
                FTPTransfer.disconnect();
            }
        }
    }

    private void ajouterMessage(String msg, FacesMessage.Severity severity) {
        FacesMessage message = new FacesMessage(msg);
        if (severity != null) {
            message.setSeverity(severity);
        }
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
}
